<?php //
include_once("Conexion.php");

//Declaracion
class M_Plato {
    //Variable de la clase

    private $id_producto;
    private $imagenProducto;
    private $nombre;
    private $descripcion;
    private $id_SubRubro;
    private $id_tipoPresentacion;
    private $precio_fijo;
    private $precio_oferta;
    private $rentabilidad;
    private $usuCreac;
    private $usuModif;
    
    function Listar_Platos_UNOS() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT id_producto, nombre, descripcion, id_subrubro,
      id_tipo_presentacion, precio_fijo, precio_oferta, rentabilidad
  FROM tbl_producto
  WHERE id_producto = $this->id_producto and eliminado= false  ";

        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
   

    //V_PRODUCTO
    function Listar_Platos_TODOS() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT p.id_producto, p.precio_fijo, p.imagen as imagenproducto, p.nombre as plato,  pt.nombre as presentacion , sr.nombre as subrubro,
 r.nombre as rubro , p.rentabilidad
FROM tbl_producto p
JOIN tbl_presentacion_tipo pt on p.id_tipo_presentacion = pt.id_presentacion_tipo
JOIN tbl_sub_rubro sr on p.id_subrubro = sr.id_sub_rubro
 inner join tbl_rubro r on sr.id_rubro = r.id_rubro
        where p.eliminado = false and p.id_tipo_producto = 1 ";

        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    //CREADO POR JLOZANO (V_Bebida_I)
    function Listar_Bebidas_TODOS() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT p.id_producto, p.precio_fijo, p.imagen as imagenproducto, p.nombre as plato,  pt.nombre as presentacion , sr.nombre as subrubro,
 r.nombre as rubro , p.rentabilidad
FROM tbl_producto p
JOIN tbl_presentacion_tipo pt on p.id_tipo_presentacion = pt.id_presentacion_tipo
JOIN tbl_sub_rubro sr on p.id_subrubro = sr.id_sub_rubro
 inner join tbl_rubro r on sr.id_rubro = r.id_rubro
        where p.eliminado = false and p.id_tipo_producto = 2 ";

        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    //V_Producto_U
    function searchProducto_Update() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT p.id_producto, p.imagen as imagenproducto, p.nombre as producto, p.descripcion, p.id_subrubro,
        sr.nombre as subrubro, sr.imagen as imagensubrubro,
        r.nombre as rubro, r.imagen as imagenrubro, r.id_rubro
        FROM tbl_producto p 
        inner join tbl_sub_rubro sr on p.id_subrubro = sr.id_sub_rubro
        inner join tbl_rubro r on sr.id_rubro = r.id_rubro
        where p.eliminado = false and p.id_producto = $this->idProducto ";

        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    function searchProductosxSubRubro($codigo) {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT * FROM tbl_producto where id_subrubro = $codigo  ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {

            }
            try {
                pg_close($cn);
            } catch (exception $e) {

            }
        }
        return $registros;
    }
    
    //C_PRODUCTO_I
    function insertPlato() {
       
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
         $sql=" INSERT INTO tbl_producto(
             imagen, nombre, descripcion, id_subrubro, creacion, 
             creadopor, eliminado, id_tipo_presentacion, 
            precio_fijo, precio_oferta, rentabilidad, id_tipo_producto)
    VALUES ('$this->imagenProducto','$this->nombre','$this->descripcion',$this->id_SubRubro,now(),'$this->usuCreac', 
            false, $this->id_tipoPresentacion, $this->precio_fijo, $this->precio_oferta, $this->rentabilidad,1)";

            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
    
     function update_Plato() {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            $sql=" UPDATE tbl_producto
   SET  imagen=$this->imagenProducto, nombre=$this->nombre, descripcion=$this->descripcion ,
        id_subrubro=$this->id_SubRubro, 
        actualizado=now(), actualizadopor=$this->usuModif, 
       id_tipo_presentacion=$this->id_tipoPresentacion, precio_fijo=$this->precio_fijo,
       precio_oferta=$this->precio_oferta, 
       rentabilidad=$this->rentabilidad, id_tipo_producto=1
 WHERE id_producto = $this->id_producto";
            
    
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
    
    //jlozanop c_bebida_i
    function insertBebida() {
       
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
         $sql=" INSERT INTO tbl_producto(
             imagen, nombre, descripcion, id_subrubro, creacion, 
             creadopor, eliminado, id_tipo_presentacion, 
            precio_fijo, precio_oferta, rentabilidad, id_tipo_producto)
    VALUES ('$this->imagenProducto','$this->nombre','$this->descripcion',$this->id_SubRubro,now(),'$this->usuCreac', 
            false, $this->id_tipoPresentacion, $this->precio_fijo, $this->precio_oferta, $this->rentabilidad,2)";

            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
    //C_Producto_U
    function updateProducto() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
            $sql = " UPDATE tbl_producto
            SET imagen = '$this->imagenProducto', 
            nombre = '$this->nombre', 
            descripcion = '$this->descripcion', 
            id_subrubro = $this->idSubRubro, 
            actualizado = now(), 
            actualizadopor = '$this->usuModif'
            WHERE id_producto = $this->idProducto ";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    //C_Producto_D
    function deleteProducto() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
           $sql = " update tbl_producto set eliminado = true  where id_producto = $this->idProducto ";
          
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    
     function deletePlato() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
           $sql = " update tbl_producto set eliminado = true  where id_producto = $this->id_producto";
          
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    
    //C_Producto_D, C_Producto_U
    function searchProducto() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " select * from tbl_producto where id_producto=$this->idProducto and eliminado = false ";
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
           // pg_free_result($rs);
            pg_close($cn);
    
        return $registros;
    }
    //Get y Set de la clase

    function setIdProducto($idProducto) {
        $this->id_producto = $idProducto;
    }
     function setImagenProducto($imagenProducto) {
        $this->imagenProducto = $imagenProducto;
    }
    function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    function setDescripcion($descripcion) {
        $this->descripcion = $descripcion;
    }
    
    function setIdSubRubro($idSubRubro) {
        $this->id_SubRubro = $idSubRubro;
    }
     function setIdTipoPresentacion($idTipoPresentacion) {
        $this->id_tipoPresentacion = $idTipoPresentacion;
    }
     function setPrecio_fijo($precio_fijo) {
        $this->precio_fijo = $precio_fijo;
    }
   
     function setPrecio_oferta($precio_oferta) {
        $this->precio_oferta = $precio_oferta;
    }
    
     function setRentabilidad($rentabilidad) {
        $this->rentabilidad = $rentabilidad;
    }
    function setUsuCreac($usuario) {
        $this->usuCreac = $usuario;
    }
    
    function setUsuModif($usuario) {
        $this->usuModif = $usuario;
    }
}
?>